A common error in an A to D converter comes from inaccurate relationship among the sizes of the capacitors used in the conversion. For example, a scaled capacitor network uses relative capacitor sizes which are scaled according to the relation of 1/2.sup.n, where n is between 0 and the maximum number of bits desired. FIG. 1A shows some capacitors, with the relative sizes of 1, 1/2, 1/4 . . . 1/32. A differential nonlinearity ("DNL") error is caused by inaccuracies in the capacitances of these scaled capacitors. This differential nonlinearity can cause missing codes.
For example, the effect is shown with reference to FIG. 1B. In FIG. 1B, increasing the voltage one increment beyond the voltage 150 that produces the code 01111111, yields a jump to code 1000011. This means that the codes between 01111111 and 1000011 are never used. These "missing codes" result in granularity of the A/D converter and also effectively reduce the dynamic ranges of the converter since fewer codes are available for use.
It has been suggested to correct this error using a look-up table for each value. However, this requires a large amount of memory.